package com.bee.gateway.service;

import com.bee.gateway.common.domain.RoutesDO;
import com.bee.gateway.common.vo.RouteQueryVO;

import java.util.List;

/**
 * 路由配置
 * @author Damin.yang
 * @date 2019/07/27 23:26
 */
public interface RoutesService {

    /**
     * 添加路由
     * @param routesDO
     * @return
     */
    int insert(RoutesDO routesDO);

    /**
     * 获取网关路由
     * @param id
     * @return
     */
    RoutesDO get(long id);

    /**
     * 查询网关路由
     * @param queryVO
     * @return
     */
    List<RoutesDO> query(RouteQueryVO queryVO);

    /**
     * 更新网关路由信息
     * @param routesDO
     */
    void update(RoutesDO routesDO);

    /**
     * 根据id删除网关路由
     * @param id
     */
    void delete(long id);

    /**
     * 重新加载网关路由配置到redis
     * @return 成功返回true
     */
    void overload();

    /**
     * 初始化所有路由信息到缓存
     */
    void cacheAllRoutes();
}
